Data storage devices, such as those that include disc-shaped data storage media like disc drives, record data in tracks on the data storage media and also read recorded data from the tracks. Devices do this by positioning a read/write head with a signal transducer over a track so that data can be written to or read from the track.
Errors in reading or writing data can occur due to various causes, such as problems with positioning the head or irregularities in the track and storage media. For example, a read error may occur because of scratches on the media, asperity (or roughness) of the storage media surface, and non-homogeneity in data storage material over the media. Read errors may also occur due to track “wander”, wherein the track does not follow an expected path. Errors at different locations on the data storage media may be caused by different things and may require different retry procedures to correct. Additionally, a detected error may change over time. Errors may occur over time, perhaps because the data storage media deteriorates or is damaged.
When an error occurs while data is written to or read from a track, the device may perform a retry operation in an attempt to correct the error. A device may include a variety of retry procedures, also sometimes referred to as error recovery routines. A retry procedure may be designed for one or more specific types of error. If performing a specific retry operation does not overcome the error, the device may perform another retry procedure. If none of the performed retry operations are successful, i.e. if none of them are able to correct the error, the device may interpret this as a “hard” error and consider that location on the track no longer usable. Some devices monitor successful performances of specific retry procedures and use this success rate in selecting which retry procedure to perform first.
Thus, having several retry procedures at the device's disposal may be a powerful way of attempting to overcome a detected error. However, it takes a finite time to perform each retry procedure and it may be desirable to perform the retry procedures as quickly as possible, particularly where there is a high throughput of data, such as in an audio/video application.